using System;
using System.Collections.Generic;
using ns26;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("TB_Blizzcon_2016")]
	public class TB_Blizzcon_2016 : MissionEntity
	{
		public enum MATCHUP
		{
			KABALVLOTUS,
			KABALVGOONS,
			GOONSVLOTUS,
			ERROR
		}

		public enum BOSS
		{
			HAN,
			CHO,
			AYA,
			KAZAKUS
		}

		public enum VICTOR
		{
			GOONSBEATKABAL,
			GOONSBEATLOTUS,
			LOTUSBEATKABAL,
			LOTUSBEATGOONS,
			KABALBEATGOONS,
			KABALBEATLOTUS,
			ERROR
		}

		public Card m_bossCard => method_3<Card>("m_bossCard");

		public Card m_mediva => method_3<Card>("m_mediva");

		public List<bool> hasUsedLine => method_3<Class250<bool>>("hasUsedLine")?.method_25();

		public int currentTurnsWOEmote => method_2<int>("currentTurnsWOEmote");

		public int emoteTurnsLimit => method_2<int>("emoteTurnsLimit");

		public bool emoteThisTurn => method_2<bool>("emoteThisTurn");

		public List<int> priorityLines => method_3<Class270<int>>("priorityLines")?.method_25();

		public bool hasPlayedMatchupTriggerGoons => method_2<bool>("hasPlayedMatchupTriggerGoons");

		public bool hasPlayedMatchupTriggerLotus => method_2<bool>("hasPlayedMatchupTriggerLotus");

		public bool hasPlayedMatchupTriggerKabal => method_2<bool>("hasPlayedMatchupTriggerKabal");

		public MATCHUP currentMatchup => method_2<MATCHUP>("currentMatchup");

		public VICTOR matchResult => method_2<VICTOR>("matchResult");

		public TAG_CLASS lotusHero => method_2<TAG_CLASS>("lotusHero");

		public TAG_CLASS kabalHero => method_2<TAG_CLASS>("kabalHero");

		public TAG_CLASS goonsHero => method_2<TAG_CLASS>("goonsHero");

		public string grimyGoonsName => method_4("grimyGoonsName");

		public string jadeLotusName => method_4("jadeLotusName");

		public string kabalName => method_4("kabalName");

		public TAG_CLASS firstPlayerHero => method_2<TAG_CLASS>("firstPlayerHero");

		public TAG_CLASS secondPlayerHero => method_2<TAG_CLASS>("secondPlayerHero");

		public TB_Blizzcon_2016(IntPtr address, string className)
			: base(address, className)
		{
		}

		public TB_Blizzcon_2016(IntPtr address)
			: this(address, "TB_Blizzcon_2016")
		{
		}

		public new void NotifyOfGameOver(TAG_PLAYSTATE gameResult)
		{
			method_8("NotifyOfGameOver", gameResult);
		}

		public MATCHUP GetBrawlHeroes()
		{
			return method_11<MATCHUP>("GetBrawlHeroes", Array.Empty<object>());
		}

		public new void PreloadAssets()
		{
			method_8("PreloadAssets");
		}

		public void SetupPriorityLines()
		{
			method_8("SetupPriorityLines");
		}

		public Vector3 GetPositionForBoss(BOSS boss)
		{
			return method_11<Vector3>("GetPositionForBoss", new object[1] { boss });
		}

		public Notification.SpeechBubbleDirection GetBubbleDirectionForBoss(BOSS boss)
		{
			return method_11<Notification.SpeechBubbleDirection>("GetBubbleDirectionForBoss", new object[1] { boss });
		}

		public void SetNamePlate()
		{
			method_8("SetNamePlate");
		}
	}
}
